﻿using System;

namespace _16面向对象
{
    class Program
    {
        static void Main(string[] args)
        {
            Dog d = new Dog();
            d.Name = "旺财";
            d.Age = 10;
            d.Color = Anicolor.黑色;
            d.Gi = Anigi.大;
            d.Cat();
            d.Sat();

            Console.ReadKey();

            Console.ReadKey();
        }
    }
    //万物皆对象
    //万物：真实世界的事物，对于程序构建的世界里面的事物
    //皆对象： 都是对象， 真实世界的事物是对象，从真实世界抽象出来的特性构成的程序世界的事物，也是对象。
    //抽象：一个大概的东西，你描述的只是你目前关心的或者你的认识方位能够理解的东西。

    enum Anicolor
    {
        黑色,
        蓝色,
        红色,
        绿色
    }
    enum Anigi
    {
        大,
        小
    }

    // 属性 ： 可以提供对赋值进行判断和限定
    // 变量名称规则：约定只要是属性，以大写字母开头
    // get ： 获得
    // set : 设置
    // return : 返回
    // value : 值 （根据申明的数据类型不同而不同）
    //动物 基类
    class Anima
    {
        //年龄，姓名，颜色，大小
        public int Age { set; get; }
        public string Name { set; get; }
        public Anicolor Color { set; get; }
        public Anigi Gi { set; get; }

        //方法
        public void Cat()
        {
            Console.WriteLine(Name + "吃饭");
        }
        public void Sat()
        {
            Console.WriteLine(Name + "跑");
        }
    }

    class Dog : Anima { };
    class Cat : Anima { };
}
